package demo06

import scala.collection.immutable.Range

/**
 * @author xiaoZhao
 * @date 2022/7/18
 * @describe 简单函数
 */
object Test13_SimpleFunction {
  def main(args: Array[String]): Unit = {
    // 创建集合
    val list = List(12, 90, 45, 34, 23, 65)
    val list2 = List(("a", 1), ("b", 4), ("c", 5), ("d", 2), ("e", 9))

    // 求和
    println(list.sum)
    // 求乘积
    println(list.product)
    // 最大值
    println(list.max)
    println(list2.maxBy((tuple: (String, Int)) => tuple._2))
    println(list2.maxBy(_._2))

    // 最小值
    println(list.min)
    println(list2.minBy(_._2))

    // 排序
    // 默认从小到大排列
    val sorted = list.sorted
    println(sorted)
    // 从大到小排列
    println(list.sorted.reverse) // 效率太低
    // 传入隐式参数排序 改变排序规则 默认从小到大
    list.sorted(Ordering[Int].reverse)

    println(list2.sortBy(_._2))
    println(list2.sortBy(_._2)(Ordering[Int].reverse))

    // sortWith
    println(list.sortWith( (a: Int,b: Int) => a < b ))
    println(list.sortWith( (a,b) => a < b ))
    println(list.sortWith( _<_ ))
  }
}
